package com.blrs.service.platform.impl;

import java.util.ArrayList;
import java.util.List;

import com.blrs.common.core.domain.entity.SysDictData;
import com.blrs.common.utils.DateUtils;
import com.blrs.common.utils.SecurityUtils;
import com.blrs.service.platform.IPlatformFunctionService;
import com.blrs.system.mapper.SysDictDataMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.blrs.mapper.PlatformFunctionMapper;
import com.blrs.domain.PlatformFunction;


/**
 * 平台功能Service业务层处理
 * 
 * @author ruoyi
 * @date 2025-05-12
 */
@Service
public class PlatformFunctionServiceImpl implements IPlatformFunctionService
{
    @Autowired
    private PlatformFunctionMapper platformFunctionMapper;
    @Autowired
    private SysDictDataMapper sysDictDataMapper;

    /**
     * 查询平台功能
     * 
     * @param id 平台功能主键
     * @return 平台功能
     */
    @Override
    public PlatformFunction selectPlatformFunctionById(Long id)
    {
        return platformFunctionMapper.selectPlatformFunctionById(id);
    }

    /**
     * 查询平台功能列表
     * 
     * @param platformFunction 平台功能
     * @return 平台功能
     */
    @Override
    public List<PlatformFunction> selectPlatformFunctionList(PlatformFunction platformFunction)
    {
        return platformFunctionMapper.selectPlatformFunctionList(platformFunction);
    }

    /**
     * 新增平台功能
     * 
     * @param platformFunction 平台功能
     * @return 结果
     */
    @Override
    public int insertPlatformFunction(PlatformFunction platformFunction)
    {
        platformFunction.setCreateTime(DateUtils.getNowDate());
        platformFunction.setCreatedId(SecurityUtils.getUserId());
        platformFunction.setCreatedName(SecurityUtils.getLoginUser().getUser().getNickName());
        platformFunction.setOrgId(SecurityUtils.getOrgId());
        return platformFunctionMapper.insertPlatformFunction(platformFunction);
    }

    /**
     * 修改平台功能
     * 
     * @param platformFunction 平台功能
     * @return 结果
     */
    @Override
    public int updatePlatformFunction(PlatformFunction platformFunction)
    {
        return platformFunctionMapper.updatePlatformFunction(platformFunction);
    }

    /**
     * 批量删除平台功能
     * 
     * @param ids 需要删除的平台功能主键
     * @return 结果
     */
    @Override
    public int deletePlatformFunctionByIds(Long[] ids)
    {
        return platformFunctionMapper.deletePlatformFunctionByIds(ids);
    }

    /**
     * 删除平台功能信息
     * 
     * @param id 平台功能主键
     * @return 结果
     */
    @Override
    public int deletePlatformFunctionById(Long id)
    {
        return platformFunctionMapper.deletePlatformFunctionById(id);
    }

    @Override
    public List<List<PlatformFunction>> selectPlatformFunctionListByPublic(PlatformFunction platformFunction) {
        List<List<PlatformFunction>> lists = new ArrayList<>();
        List<SysDictData> list = sysDictDataMapper.selectDictDataByType("platform_functions");
        for (SysDictData dict : list) {
                List<PlatformFunction> platformFunctions=platformFunctionMapper.selectPlatformFunctionByPublic(dict.getDictValue());
             lists.add(platformFunctions);
        }
        return lists;
    }
}
